package com.bistu.xiong.factory.data.helper;

import android.content.Context;
import android.content.SharedPreferences;

import com.bistu.xiong.factory.data.DataSource;
import com.bistu.xiong.factory.data.RspCallback;
import com.bistu.xiong.factory.model.api.RspModel;
import com.bistu.xiong.factory.model.api.account.LoginModel;
import com.bistu.xiong.factory.model.api.account.RegisterModel;
import com.bistu.xiong.factory.model.api.account.AccountRspModel;
import com.bistu.xiong.factory.model.api.account.UpdateUserModel;
import com.bistu.xiong.factory.net.Network;
import com.bistu.xiong.factory.net.RemoteService;

import retrofit2.Call;

/**
 * Created by XiongXiaoJun on 2017/12/15.
 * 账户API网络请求帮助类
 */

public class AccountHelper {
    /**
     * 注册的接口，异步的调用
     * @param model    传递一个注册的Model进来
     * @param callback 成功与失败的接口回送
     */
    public static void register(RegisterModel model, final DataSource.Callback<AccountRspModel> callback){
        // 调用Retrofit对我们的网络请求接口做代理
        RemoteService service = Network.remote();
        // 得到一个Call
        Call<RspModel<AccountRspModel>> call = service.accountRegister(model.getMap());
        // 异步的请求
        call.enqueue(new RspCallback<AccountRspModel>(callback));
    }
    /**
     * 登录的接口，异步的调用
     * @param model    传递一个登录的Model进来
     * @param callback 成功与失败的接口回送
     */
    public static void login(LoginModel model,final DataSource.Callback<AccountRspModel> callback){
        // 调用Retrofit对我们的网络请求接口做代理
        RemoteService service = Network.remote();
        // 得到一个Call
        Call<RspModel<AccountRspModel>> call = service.accountLogin(model.getMap());
        // 异步的请求
        call.enqueue(new RspCallback<AccountRspModel>(callback));
    }

    /**
     * 更新的接口，异步的调用
     * @param model    传递一个更新的Model进来
     * @param callback 成功与失败的接口回送
     */
    public static void updateInfo(UpdateUserModel model, final DataSource.Callback<AccountRspModel> callback){
        // 调用Retrofit对我们的网络请求接口做代理
        RemoteService service = Network.remote();
        // 得到一个Call
        Call<RspModel<AccountRspModel>> call = service.accountUpdate(model.getMap());
        // 异步的请求
        call.enqueue(new RspCallback<AccountRspModel>(callback));
    }

}
